package com.ruoyi.jwxt.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ruoyi.jwxt.domain.DTO.JwxtSemesterDTO;
import com.ruoyi.jwxt.domain.PO.JwxtSemester;
import com.ruoyi.jwxt.mapper.JwxtSemesterMapper;
import com.ruoyi.jwxt.service.IJwxtSemesterService;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;

/**
 * 学期管理Service业务层处理
 */
@Service
public class JwxtSemesterServiceImpl implements IJwxtSemesterService {
    @Autowired
    private JwxtSemesterMapper jwxtSemesterMapper;
    @Autowired
    private SysConfigMapper sysConfigMapper;

    /**
     * JwxtSemester转换为JwxtSemesterDTO
     */
    @Override
    public JwxtSemester convert(JwxtSemesterDTO jwxtSemesterDTO) {
        JwxtSemester jwxtSemester = new JwxtSemester();
        jwxtSemester.setSemesterId(jwxtSemesterDTO.getId());
        jwxtSemester.setSemesterName(jwxtSemesterDTO.getSemesterName());
        return jwxtSemester;
    }

    /**
     * JwxtSemesterDTO转换为JwxtSemester
     */
    @Override
    public JwxtSemesterDTO convert(JwxtSemester jwxtSemester){
        JwxtSemesterDTO jwxtSemesterDTO = new JwxtSemesterDTO();
        jwxtSemesterDTO.setId(jwxtSemester.getSemesterId());
        jwxtSemesterDTO.setSemesterName(jwxtSemester.getSemesterName());
        return jwxtSemesterDTO;
    }

    /**
     * 新增学期管理
     */
    @Override
    public int insert(JwxtSemester jwxtSemester) {
        return jwxtSemesterMapper.insert(jwxtSemester);
    }

    /**
     * 批量删除学期管理
     */
    @Override
    public int delete(Long[] ids) {
        return jwxtSemesterMapper.delete(ids);
    }

    /**
     * 删除学期管理信息
     */
    @Override
    public int delete(Long id) {
        return jwxtSemesterMapper.delete(new Long[] { id });
    }

    /**
     * 查询学期管理列表
     */
    @Override
    public List<JwxtSemester> select(JwxtSemester jwxtSemester) {
        return jwxtSemesterMapper.select(jwxtSemester);
    }

    /**
     * 查询学期管理
     */
    @Override
    public JwxtSemester select(Long id) {
        JwxtSemester jwxtSemester = new JwxtSemester();
        jwxtSemester.setSemesterId(id);
        List<JwxtSemester> semesters=select(jwxtSemester);
        if(semesters.isEmpty()){
            return null;
        }
        return semesters.get(0);
    }

    /**
     * 修改学期管理
     */
    @Override
    public int update(JwxtSemester jwxtSemester) {
        return jwxtSemesterMapper.update(jwxtSemester);
    }

    /**
     * 设置全局学期
     */
    @Override
    public int setCurSemester(String name) {
        SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("jwxt.curSemester");
        sysConfig.setConfigValue(name);
        // System.out.println(name);
        // System.out.println(sysConfig.toString());
        sysConfigMapper.updateConfig(sysConfig);
        return 1;
    }
}
